<?php
/**登录接口
 * Created by PhpStorm.
 * User: C。
 * Date: 2019/8/12
 * Time: 17:10
 */
namespace app\adminson\controller;
use PHPMailer\SendEmail;
use think\Controller;
use app\common\model\UserTypeSon;
use org\Verify;
use think\Db;

/**
 * 登录控制器
 * Class Login
 * @package app\index\controller
 */
class Login extends Controller
{
    public function getIndex()
    {
//        if (time() - session('session_start_time') > config('session.expire')) {
//            session(null);
//            session(null, config('admin.session_adminuser_scope'));//清除登录标识
//        }
//        echo session('uid');die;
//        echo md5(md5('123456') . config('admin.adminuser_password_halt'));
//        $oos = config('oos');
//        return admin_json(1,'od',$oos);
//        var_dump($oos);die;
//        $result = SendEmail::SendEmail();
//
//        if($result){
//            //发送成功的处理逻辑
//            echo 1;
//        }else{
//            //发送失败的处理逻辑
//            echo 2;
//        }
//        $module     = strtolower(request()->module());
//        $controller = strtolower(request()->controller());
//        $action     = strtolower(request()->action());
//        $url        = $module."/".$controller."/".$action;
//        echo $url;die;
//        echo '<pre>';
//        print_r(session('name'));die;
        return $this->fetch('\index');
    }

    /**
     * [doLogin  登录操作]
     * @author [C。]
     * @return json
     */
    public function postDoLogin()
    {
        $tel = input("param.tel");
        $pswd = input("param.pswd");
        $code = input("param.code");
        $comid = input("param.comid");

        //compact()创建一个包含变量名和它们的值的数组：  Array ( [username] => $username [password] => $password )
        $result = $this->validate(compact('tel', 'pswd','code'), 'Manager');
        if(true !== $result){
            return admin_json(-6,$result);
        }

        $verify = new Verify();
        $verify->seKey = config('admin.verify_halt'); // 自定义验证码加密密钥

//        if (!$code)
//            return admin_json(-5,'请输入验证码');
//
//        if (!$verify->check($code))
//            return admin_json(-4,'验证码错误');

        $hasUser = Db::name('manager')->where('tel', $tel)->where('comid',$comid)->find();

        if(empty($hasUser)){
            return admin_json(-1,'管理员不存在');
        }

        if(md5(md5($pswd) . config('admin.adminuser_password_halt')) != $hasUser['pswd']){
            return admin_json(-2,'账号或密码错误');
        }

        if($hasUser['states'] != config('code.status_normal')){
            return admin_json(-7,'该账号被禁用');
        }

        //获取该管理员的角色信息
        $user = new UserTypeSon();
        $info = $user->getRoleInfo($hasUser['duty']);

        session(config('admin.session_adminuser'), $hasUser, config('admin.session_adminuser_scope'));//session('adminuser')数组形式
        session('uid', $hasUser['id']);         //用户ID
        session('username', $hasUser['tel']);  //用户名
        session('rolename', $info['duty']);    //角色名
        session('roleid', $hasUser['duty']);    //角色名
        session('rule', $info['rules']);        //角色节点
        session('name', $info['name']);         //角色权限
        session('session_start_time', time());
        session('comid', $comid);
        return admin_json(1,'登录成功');
    }

    /**
     * [checkVerify  生成验证码]
     * @author [C。]
     */
    public function getVerify()
    {
        $verify = new Verify();
        $verify->seKey = config('admin.verify_halt'); // 自定义验证码加密密钥
        $verify->imageH = 32;
        $verify->imageW = 100;
        $verify->length = 4;
        $verify->useNoise = false; //使用中文验证码
        $verify->fontSize = 14;
        return $verify->entry();
    }

    /**
     * [loginOut  退出登录]
     * @author [忘尘]
     */
    public function getLoginOut()
    {
        session(null);
        session(null, config('admin.session_adminuser_scope'));//清除登录标识

        return admin_json(1,'退出登录成功');
    }
}